package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;

import java.util.Map;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {
    /**
     * 持久化订单
     * @param orderInfo
     */
    void saveOrder(OrderInfo orderInfo);

    /**
     * 创建订单
     * @param time
     * @param seckillId
     * @param phone
     * @return
     */
    public OrderInfo createOrder(int time, Long seckillId, Long phone);

    /**
     * 根据 订单编号 查询得到订单
     * @param orderNo
     * @return
     */
    OrderInfo find(String orderNo);

    /**
     * 正在取消的过程中 (另外一个线程支付了  用户手动取消)
     * @param orderNo
     * @param statusTimeout
     * @return
     */
    int updateCancleStatus(String orderNo, Integer statusTimeout);

    /**
     * 支付宝 支付
     * @param orderNo
     */
    String payOnline(String orderNo);

    /**
     * 把订单状态修改为已付款
     * @param orderNo
     * @param type
     */
    void changePayStatus(String orderNo,int type);

    /**
     * 支付宝 退款
     * @param orderNo
     */
    void refund(String orderNo);

    /**
     * 积分支付
     * @param orderNo
     * @return
     */
    String payIntegral(String orderNo);

    /**
     * 积分 退款
     * @param orderNo
     */
    void refundIntegral(String orderNo);
}
